草庐IT

c++ tcp多线程

全部标签

java - 线程 2 是否可以打印 “x=0” ?

线程2是否可以打印“x=0”?intx=0;booleanbExit=false;Thread1(notsynchronized)x=1;bExit=true;Thread2(notsynchronized)if(bExit==true)System.out.println("x="+x); 最佳答案 IsitpossibleforThread2toprint“x=0”?是如果指令被JIT编译器重新排序为:线程1:bExit=truex=1线程2:if(bExit==true)System.out.println("x="+x);/

java - 线程主java.lang.exceptionininitializerError中的异常在没有hadoop的情况下安装spark

我正在尝试安装spark2.3.0,更具体地说,它是spark-2.3.0-bin-hadoppo2.7'D:\spark\bin'已经添加到环境变量PATH中。同时,安装了JDK-10。未安装Hadoop。但是谷歌说spark可以在没有hadoop的情况下工作。这是错误信息C:\Users\a>spark-shellExceptioninthread"main"java.lang.ExceptionInInitializerErroratorg.apache.hadoop.util.StringUtils.(StringUtils.java:80)atorg.apache.hadoo

java - servlet 中的线程局部变量

threadlocals变量是否对所有向拥有这些变量的servlet发出的请求都是全局的?我正在为服务器使用树脂。感谢awnser。我想我可以让自己更清晰。具体案例:我想:在请求开始执行时初始化一个静态变量。能够以线程安全的方式在从servlet调用的方法的进一步执行中查询变量的值,直到请求结束执行 最佳答案 简短回答:是的。更长一点:这就是Spring发挥其魔力的方式。参见RequestContextHolder(通过DocJar)。但需要注意-您必须知道何时使ThreadLocal无效,如何推迟到其他线程以及如何(不)与非线程本

java - 当违反 Swing 的线程策略时会发生什么?

在过去的几年里,我主要在Eclipse中进行UI开发,这在线程访问方面非常保守:任何尝试从UI线程外部更改UI小部件的属性(例如,颜色、文本)抛出异常。我现在正在查看Swing中的一个现有程序,它有一个带有大量自定义小部件的窗口。有一个单独的线程为这些小部件中的每一个运行一个变异函数,变异函数读取一些东西的值(例如,标签颜色和值)并写入一些(例如,更改背景颜色)。请注意,没有涉及自定义绘画或类似内容,只是对它包含的主要是JLabel的子小部件进行了一系列更改。目前,它从单独的线程运行,而不是从Swing事件线程运行。该线程遍历所有400个小部件并在每个小部件上调用mutator。更新似

java - 如何在多线程中使用等待和通知协议(protocol)

具体来说,有人能告诉我这段代码有什么问题吗?它应该启动线程,所以应该打印“Enteringthread..”5次,然后等待直到调用notifyAll()。但是,它随机打印“Entering..”和“Done..”并继续等待其他人。publicclassThreadTestimplementsRunnable{privateintnum;privatestaticObjectobj=newObject();ThreadTest(intn){num=n;}@Overridepublicvoidrun(){synchronized(obj){try{System.out.println("E

java - Swing JTextArea 多线程问题 - InterruptedException

我有一个简单的控制台应用程序,它在多个线程(其中10-20个)中运行计算。现在我正在尝试创建一个简单的GUI,它允许我选择要处理的文件并从所有线程打印日志。因此,我为我的日志创建了一个带有JTextArea的swingGUI,并创建了一个将信息记录到日志的方法:publicsynchronizedvoidlog(Stringtext){logArea.append(text);logArea.append("\n");if(logArea.getDocument().getLength()>50000){try{logArea.getDocument().remove(0,5000);

java - 如何在 Eclipse 调试透视图中识别线程?

我正在开发一个有一些线程的Java应用程序。我在控制台中打印threadId,例如17、18、19等等。但是当我打开调试透视图时,我有这个“调试”窗口(最左上角的窗口),它显示了当前线程,但它们使用[Thread-2]、[thread-3]。数字不一定与ThreadId匹配。有什么方法可以将我在控制台中获得的ThreadId与“调试”窗口中显示的线程相关联? 最佳答案 我不知道有什么办法可以做到这一点。然而,还有另一种方法。这些线程名称由您正在使用的Thread构造函数自动生成。但是,有一个名为Thread.setName()的方法

java - 使用 Thread.sleep 线程 hibernate 时的 CPU 消耗

我有一个服务器程序可以轮询数据库以获取新请求,我希望每隔1分钟进行一次轮询,所以我在程序中设置了一个Thread.sleep()while循环。问题是每当这个程序应该“hibernate”时,CPU消耗就会急剧上升(即大约25-30%)。矛盾的是,当程序不处于hibernate状态,忙于处理请求时,CPU消耗下降到0.4%。我在网上阅读并发现与thread.sleep相关的性能下降,但我找不到任何可行的替代方案(Thread.wait需要通知对象,我觉得这在我的场景中是无用的)主循环(当没有新请求时)不做任何事情,这是当CPU消耗为25%时正在做的所有事情的框架->投票->没有新记录?

java - appengine 上线程安全 java 的 list

除了Memcache的以下用途外,我的java应用程序引擎项目不会在请求之间保留任何状态:Objectify使用内存缓存来缓存数据存储获取我使用内存缓存作为在多个请求后批量清理任务的方法(例如if(thememcachedoesn'tthinkacleanuptaskisalreadyrunning)scheduleanothercleanuptask)。我没有对任何对象的全局/静态引用,除了:当前经过身份验证的用户保存在staticThreadLocal中目的。这意味着每个请求都将获得自己的用户副本,对吧?我有一个处理所有数据操作的类,一个实例作为一种全局变量保存在staticDat

java - 与 java 线程不一致的结果

我有一个实现runnable的线程类和一个作为实例变量的int计数器。两个同步方法add和sub。当我以某种方式运行我的测试类时,它会打印几次错误的结果。据我了解,当一个方法被同步时,整个对象将被锁定以供其他线程访问,每次我们都应该得到相同的结果时使用这种逻辑吗?有些情况并非如此。我错过了什么吗?我的机器是Windows7,64位。publicclassThreadClassimplementsRunnable{intcounter=0;@Overridepublicvoidrun(){add();sub();}publicsynchronizedvoidadd(){System.ou